Paxos, Raft, PBFT പോലുള്ള കൺസെൻസസ് അൽഗോരിതങ്ങൾ മനസിലാക്കാനും നടപ്പിലാക്കാനുമുള്ള സമഗ്രമായ വഴികാട്ടി. ആഗോളതലത്തിൽ വിശ്വസനീയമായ ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾ നിർമ്മിക്കാൻ ഇത് സഹായിക്കും.
ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾ: കൺസെൻസസ് അൽഗോരിതംസ് നടപ്പിലാക്കുന്നതിലെ സങ്കീർണ്ണതകൾ നാവിഗേറ്റ് ചെയ്യുന്നു
ആധുനിക സാങ്കേതികവിദ്യയുടെ വിശാലവും പരസ്പരം ബന്ധിതവുമായ ലോകത്ത്, നാം ദിവസവും ഉപയോഗിക്കുന്ന മിക്കവാറും എല്ലാ നിർണായക സേവനങ്ങളുടെയും നട്ടെല്ല് ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളാണ്. ആഗോള സാമ്പത്തിക ശൃംഖലകൾ, ക്ലൗഡ് ഇൻഫ്രാസ്ട്രക്ചർ, തത്സമയ ആശയവിനിമയ പ്ലാറ്റ്ഫോമുകൾ, എന്റർപ്രൈസ് ആപ്ലിക്കേഷനുകൾ എന്നിവയുൾപ്പെടെ, ഈ സിസ്റ്റങ്ങൾ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് നിരവധി സ്വതന്ത്ര കമ്പ്യൂട്ടിംഗ് നോഡുകളിലായി പ്രവർത്തിക്കാനാണ്. സമാനതകളില്ലാത്ത സ്കേലബിലിറ്റി, പ്രതിരോധശേഷി, ലഭ്യത എന്നിവ വാഗ്ദാനം ചെയ്യുമ്പോൾത്തന്നെ, ഈ വിതരണം ഒരു വലിയ വെല്ലുവിളി ഉയർത്തുന്നു: ചില നോഡുകൾ പരാജയപ്പെടുമ്പോൾ പോലും, എല്ലാ പങ്കാളിത്ത നോഡുകളിലും സ്ഥിരവും അംഗീകരിക്കപ്പെട്ടതുമായ ഒരു അവസ്ഥ നിലനിർത്തുക. ഇതാണ് കൺസെൻസസ് അൽഗോരിതങ്ങളുടെ മേഖല.
കൺസെൻസസ് അൽഗോരിതങ്ങൾ എന്നത് വിതരണം ചെയ്ത ചുറ്റുപാടുകളിൽ ഡാറ്റയുടെ സമഗ്രതയുടെയും പ്രവർത്തനപരമായ തുടർച്ചയുടെയും നിശബ്ദ സംരക്ഷകരാണ്. നെറ്റ്വർക്ക് കാലതാമസങ്ങൾ, നോഡ് തകരാറുകൾ, അല്ലെങ്കിൽ ക്ഷുദ്രകരമായ പെരുമാറ്റങ്ങൾ എന്നിവ ഉണ്ടായിരുന്നിട്ടും, ഒരു കൂട്ടം മെഷീനുകൾക്ക് ഒരൊറ്റ മൂല്യത്തിലോ, പ്രവർത്തനങ്ങളുടെ ക്രമത്തിലോ, അല്ലെങ്കിൽ അവസ്ഥാമാറ്റത്തിലോ ഒരു ധാരണയിലെത്താൻ അവ സഹായിക്കുന്നു. അവയില്ലാതെ, നമ്മുടെ ഡിജിറ്റൽ ലോകത്ത് നമ്മൾ പ്രതീക്ഷിക്കുന്ന വിശ്വാസ്യത തകരും. ഈ സമഗ്രമായ ഗൈഡ് കൺസെൻസസ് അൽഗോരിതങ്ങളുടെ സങ്കീർണ്ണ ലോകത്തിലേക്ക് കടന്നുചെല്ലുന്നു, അവയുടെ അടിസ്ഥാന തത്വങ്ങൾ പര്യവേക്ഷണം ചെയ്യുകയും, പ്രധാനപ്പെട്ട നടപ്പിലാക്കലുകൾ പരിശോധിക്കുകയും, യഥാർത്ഥ ലോകത്തിലെ വിതരണം ചെയ്ത സിസ്റ്റങ്ങളിൽ അവയുടെ വിന്യാസത്തിനുള്ള പ്രായോഗിക ഉൾക്കാഴ്ചകൾ നൽകുകയും ചെയ്യുന്നു.
ഡിസ്ട്രിബ്യൂട്ടഡ് കൺസെൻസസിന്റെ അടിസ്ഥാന വെല്ലുവിളി
ശക്തമായ ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റം നിർമ്മിക്കുന്നത് സ്വാഭാവികമായും സങ്കീർണ്ണമാണ്. നെറ്റ്വർക്കുകളുടെ അസമന്വിത സ്വഭാവത്തിലാണ് പ്രധാന ബുദ്ധിമുട്ട് സ്ഥിതിചെയ്യുന്നത്, അവിടെ സന്ദേശങ്ങൾ വൈകുകയോ നഷ്ടപ്പെടുകയോ ക്രമം തെറ്റുകയോ ചെയ്യാം, കൂടാതെ നോഡുകൾക്ക് സ്വതന്ത്രമായി തകരാറിലാകാനും കഴിയും. ഒരു പ്രത്യേക ഇടപാട് പൂർത്തിയായോ എന്ന് ഒന്നിലധികം സെർവറുകൾക്ക് സമ്മതിക്കേണ്ട ഒരു സാഹചര്യം പരിഗണിക്കുക. ചില സെർവറുകൾ വിജയം രേഖപ്പെടുത്തുകയും മറ്റുള്ളവ പരാജയം രേഖപ്പെടുത്തുകയും ചെയ്താൽ, സിസ്റ്റത്തിന്റെ അവസ്ഥ അവ്യക്തമാവുകയും ഡാറ്റാ സ്ഥിരതയില്ലായ്മയിലേക്കും പ്രവർത്തനപരമായ കുഴപ്പങ്ങളിലേക്കും നയിക്കുകയും ചെയ്യും.
CAP തിയറവും അതിൻ്റെ പ്രസക്തിയും
ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളിലെ ഒരു അടിസ്ഥാന ആശയമാണ് CAP തിയറം, ഇത് ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് ഡാറ്റാ സ്റ്റോറിന് താഴെ പറയുന്ന മൂന്ന് ഗുണങ്ങളിൽ രണ്ടെണ്ണം മാത്രമേ ഒരേ സമയം ഉറപ്പാക്കാൻ കഴിയൂ എന്ന് പറയുന്നു:
- സ്ഥിരത: ഓരോ റീഡും ഏറ്റവും പുതിയ റൈറ്റ് സ്വീകരിക്കുന്നു അല്ലെങ്കിൽ ഒരു പിശക് ലഭിക്കുന്നു.
- ലഭ്യത: ഓരോ അഭ്യർത്ഥനയ്ക്കും ഒരു പ്രതികരണം ലഭിക്കുന്നു, അത് ഏറ്റവും പുതിയ റൈറ്റ് ആണെന്ന് ഉറപ്പില്ല.
- പാർട്ടീഷൻ ടോളറൻസ്: നെറ്റ്വർക്ക് തകരാറുകൾ (പാർട്ടീഷനുകൾ) നോഡുകൾക്കിടയിൽ സന്ദേശങ്ങൾ നഷ്ടപ്പെടുത്തുമ്പോഴും സിസ്റ്റം പ്രവർത്തിക്കുന്നത് തുടരുന്നു.
യഥാർത്ഥത്തിൽ, ഏതൊരു വലിയ തോതിലുള്ള ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റത്തിലും നെറ്റ്വർക്ക് പാർട്ടീഷനുകൾ അനിവാര്യമാണ്. അതിനാൽ, ഡിസൈനർമാർ എപ്പോഴും പാർട്ടീഷൻ ടോളറൻസ് (P) തിരഞ്ഞെടുക്കണം. ഇത് സ്ഥിരത (C) അല്ലെങ്കിൽ ലഭ്യത (A) എന്നിവയിൽ ഒന്ന് തിരഞ്ഞെടുക്കേണ്ട അവസ്ഥയിലേക്ക് നയിക്കുന്നു. കൺസെൻസസ് അൽഗോരിതങ്ങൾ പ്രധാനമായും രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത് പാർട്ടീഷനുകൾ (P) ഉണ്ടാകുമ്പോഴും സ്ഥിരത (C) നിലനിർത്താനാണ്, പലപ്പോഴും നെറ്റ്വർക്ക് വിഭജനങ്ങളിൽ ലഭ്യത (A)യുടെ ചെലവിൽ. സാമ്പത്തിക രേഖകൾ അല്ലെങ്കിൽ കോൺഫിഗറേഷൻ മാനേജ്മെന്റ് സേവനങ്ങൾ പോലുള്ള, ഡാറ്റയുടെ സമഗ്രതയ്ക്ക് പരമപ്രധാനമായ സിസ്റ്റങ്ങൾ രൂപകൽപ്പന ചെയ്യുമ്പോൾ ഈ വിട്ടുവീഴ്ച നിർണായകമാണ്.
ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളിലെ തകരാർ മോഡലുകൾ
ഫലപ്രദമായ കൺസെൻസസ് സംവിധാനങ്ങൾ രൂപകൽപ്പന ചെയ്യുന്നതിന് ഒരു സിസ്റ്റത്തിന് നേരിടാൻ സാധ്യതയുള്ള തകരാറുകളുടെ തരങ്ങൾ മനസ്സിലാക്കുന്നത് നിർണായകമാണ്:
- ക്രാഷ് ഫോൾട്ടുകൾ (Fail-Stop): ഒരു നോഡ് പ്രവർത്തിക്കുന്നത് നിർത്തുന്നു. അത് തകരുകയും പുനരാരംഭിക്കുകയും ചെയ്യാം, പക്ഷേ അത് തെറ്റായ അല്ലെങ്കിൽ തെറ്റിദ്ധരിപ്പിക്കുന്ന സന്ദേശങ്ങൾ അയക്കില്ല. ഇത് ഏറ്റവും സാധാരണവും കൈകാര്യം ചെയ്യാൻ എളുപ്പമുള്ളതുമായ തകരാറാണ്.
- ക്രാഷ്-റിക്കവറി ഫോൾട്ടുകൾ: ക്രാഷ് ഫോൾട്ടുകൾക്ക് സമാനമാണ്, പക്ഷേ നോഡുകൾക്ക് ഒരു ക്രാഷിൽ നിന്ന് കരകയറാനും സിസ്റ്റത്തിൽ വീണ്ടും ചേരാനും കഴിയും, ശരിയായി കൈകാര്യം ചെയ്തില്ലെങ്കിൽ കാലഹരണപ്പെട്ട അവസ്ഥ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്.
- ഒമിഷൻ ഫോൾട്ടുകൾ: ഒരു നോഡ് സന്ദേശങ്ങൾ അയക്കാനോ സ്വീകരിക്കാനോ പരാജയപ്പെടുന്നു, അല്ലെങ്കിൽ സന്ദേശങ്ങൾ ഉപേക്ഷിക്കുന്നു. ഇത് നെറ്റ്വർക്ക് പ്രശ്നങ്ങൾ കാരണമോ സോഫ്റ്റ്വെയർ ബഗുകൾ കാരണമോ ആകാം.
- ബൈസന്റൈൻ ഫോൾട്ടുകൾ: ഏറ്റവും ഗുരുതരവും സങ്കീർണ്ണവുമാണ്. നോഡുകൾക്ക് തോന്നിയതുപോലെ പെരുമാറാൻ കഴിയും, ക്ഷുദ്രകരമായ അല്ലെങ്കിൽ തെറ്റിദ്ധരിപ്പിക്കുന്ന സന്ദേശങ്ങൾ അയക്കാനും, മറ്റ് തകരാറുള്ള നോഡുകളുമായി ഒത്തുകളിക്കാനും, അല്ലെങ്കിൽ സിസ്റ്റത്തെ അട്ടിമറിക്കാൻ സജീവമായി ശ്രമിക്കാനും കഴിയും. ബ്ലോക്ക്ചെയിൻ അല്ലെങ്കിൽ സൈനിക ആപ്ലിക്കേഷനുകൾ പോലുള്ള വളരെ സെൻസിറ്റീവായ ചുറ്റുപാടുകളിലാണ് ഈ തകരാറുകൾ സാധാരണയായി പരിഗണിക്കുന്നത്.
FLP ഇംപോസിബിലിറ്റി ഫലം
ഒരു അസിൻക്രണസ് ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റത്തിൽ, ഒരു പ്രോസസ്സ് തകരാറിലായാൽ പോലും കൺസെൻസസ് ഉറപ്പാക്കാൻ അസാധ്യമാണെന്ന് പറയുന്ന ഒരു പ്രധാന സൈദ്ധാന്തിക ഫലമാണ് FLP ഇംപോസിബിലിറ്റി തിയറം (Fischer, Lynch, Paterson, 1985). കൺസെൻസസ് നേടുന്നതിനുള്ള സഹജമായ ബുദ്ധിമുട്ട് ഈ തിയറം എടുത്തു കാണിക്കുന്നു, കൂടാതെ പ്രായോഗിക അൽഗോരിതങ്ങൾ പലപ്പോഴും നെറ്റ്വർക്ക് സിൻക്രൊണിയെക്കുറിച്ചുള്ള അനുമാനങ്ങൾ (ഉദാഹരണത്തിന്, ഒരു നിശ്ചിത സമയത്തിനുള്ളിൽ സന്ദേശം എത്തുന്നു) നടത്തുകയോ അല്ലെങ്കിൽ എല്ലാ സാഹചര്യങ്ങളിലും നിർണ്ണായകമാകുന്നതിന് പകരം പുരോഗതിയെ പ്രോബബിലിസ്റ്റിക് ആക്കാൻ റാൻഡമൈസേഷനെയും ടൈംഔട്ടുകളെയും ആശ്രയിക്കുന്നത് എന്തുകൊണ്ടാണെന്നും ഇത് അടിവരയിടുന്നു. ഒരു സിസ്റ്റം ഉയർന്ന സാധ്യതയോടെ കൺസെൻസസ് നേടുന്നതിനായി രൂപകൽപ്പന ചെയ്യാൻ കഴിയുമെങ്കിലും, പൂർണ്ണമായും അസിൻക്രണസ് ആയ, പരാജയ സാധ്യതയുള്ള ഒരു ചുറ്റുപാടിൽ കേവലമായ ഉറപ്പ് സൈദ്ധാന്തികമായി അപ്രാപ്യമാണ് എന്നാണ് ഇത് അർത്ഥമാക്കുന്നത്.
കൺസെൻസസ് അൽഗോരിതങ്ങളിലെ പ്രധാന ആശയങ്ങൾ
ഈ വെല്ലുവിളികൾ ഉണ്ടായിരുന്നിട്ടും, പ്രായോഗിക കൺസെൻസസ് അൽഗോരിതങ്ങൾ ഒഴിച്ചുകൂടാനാവാത്തതാണ്. അവ സാധാരണയായി ഒരു കൂട്ടം പ്രധാന സവിശേഷതകൾ പാലിക്കുന്നു:
- ധാരണ: തകരാറില്ലാത്ത എല്ലാ പ്രോസസ്സുകളും ഒടുവിൽ ഒരേ മൂല്യത്തിൽ യോജിക്കുന്നു.
- സാധുത: ഒരു മൂല്യം
vഅംഗീകരിക്കപ്പെട്ടാൽ,vഏതെങ്കിലും പ്രോസസ്സ് നിർദ്ദേശിച്ചതായിരിക്കണം. - അവസാനം: തകരാറില്ലാത്ത എല്ലാ പ്രോസസ്സുകളും ഒടുവിൽ ഒരു മൂല്യം തീരുമാനിക്കുന്നു.
- സമഗ്രത: ഓരോ തകരാറില്ലാത്ത പ്രോസസ്സും പരമാവധി ഒരു മൂല്യം തീരുമാനിക്കുന്നു.
ഈ അടിസ്ഥാനപരമായ സവിശേഷതകൾക്ക് പുറമെ, പലപ്പോഴും നിരവധി സംവിധാനങ്ങൾ ഉപയോഗിക്കപ്പെടുന്നു:
- ലീഡർ തിരഞ്ഞെടുപ്പ്: പല കൺസെൻസസ് അൽഗോരിതങ്ങളും മൂല്യങ്ങൾ നിർദ്ദേശിക്കുന്നതിനും ധാരണാ പ്രക്രിയ ഏകോപിപ്പിക്കുന്നതിനും ഒരു 'ലീഡറിനെ' ചുമതലപ്പെടുത്തുന്നു. ലീഡർ പരാജയപ്പെട്ടാൽ, പുതിയ ഒരാളെ തിരഞ്ഞെടുക്കണം. ഇത് ഏകോപനം ലളിതമാക്കുന്നു, പക്ഷേ ശക്തമായി കൈകാര്യം ചെയ്തില്ലെങ്കിൽ ഒരു ഏക പരാജയ സാധ്യത (നിർദ്ദേശിക്കുന്നതിന്, സമ്മതിക്കുന്നതിനല്ല) ഉണ്ടാക്കുന്നു.
- ക്വോറംസ്: ഓരോ നോഡും സമ്മതിക്കണമെന്ന് ആവശ്യപ്പെടുന്നതിന് പകരം, നോഡുകളുടെ ഒരു 'ക്വോറം' (ഒരു ഭൂരിപക്ഷം അല്ലെങ്കിൽ ഒരു പ്രത്യേക ഉപവിഭാഗം) ഒരു നിർദ്ദേശത്തിന് അംഗീകാരം നൽകുമ്പോൾ പലപ്പോഴും സമവായം കൈവരിക്കപ്പെടുന്നു. ചില നോഡുകൾ പ്രവർത്തനരഹിതമോ വേഗത കുറഞ്ഞതോ ആണെങ്കിൽ പോലും സിസ്റ്റത്തിന് പുരോഗതി കൈവരിക്കാൻ ഇത് സഹായിക്കുന്നു. പരസ്പരം വിഭജിക്കുന്ന ഏതൊരു രണ്ട് ക്വോറങ്ങൾക്കും എല്ലായ്പ്പോഴും കുറഞ്ഞത് ഒരു പൊതു നോഡ് എങ്കിലും ഉണ്ടായിരിക്കുമെന്ന് ഉറപ്പാക്കാൻ ക്വോറം വലുപ്പങ്ങൾ ശ്രദ്ധാപൂർവ്വം തിരഞ്ഞെടുക്കുന്നു, ഇത് പരസ്പരവിരുദ്ധമായ തീരുമാനങ്ങൾ തടയുന്നു.
- ലോഗ് റെപ്ലിക്കേഷൻ: കൺസെൻസസ് അൽഗോരിതങ്ങൾ പലപ്പോഴും കമാൻഡുകളുടെ ഒരു ശ്രേണി (ഒരു ലോഗ്) ഒന്നിലധികം മെഷീനുകളിലായി പകർത്തിക്കൊണ്ടാണ് പ്രവർത്തിക്കുന്നത്. ഓരോ കമാൻഡും, കൺസെൻസസ് വഴി അംഗീകരിച്ചാൽ, ലോഗിൽ ചേർക്കുന്നു. ഈ ലോഗ് പിന്നീട് ഒരു 'സ്റ്റേറ്റ് മെഷീനിന്' ഒരു നിർണ്ണായക ഇൻപുട്ടായി വർത്തിക്കുന്നു, ഇത് എല്ലാ റെപ്ലിക്കകളും കമാൻഡുകൾ ഒരേ ക്രമത്തിൽ പ്രോസസ്സ് ചെയ്യുകയും ഒരേ അവസ്ഥയിൽ എത്തുകയും ചെയ്യുന്നുവെന്ന് ഉറപ്പാക്കുന്നു.
പ്രസിദ്ധമായ കൺസെൻസസ് അൽഗോരിതങ്ങളും അവയുടെ നടപ്പിലാക്കലുകളും
കൺസെൻസസിന്റെ സൈദ്ധാന്തിക ലോകം വളരെ വലുതാണെങ്കിലും, ചില അൽഗോരിതങ്ങൾ പ്രായോഗിക ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളിൽ പ്രബലമായ പരിഹാരങ്ങളായി ഉയർന്നുവന്നിട്ടുണ്ട്. ഓരോന്നും സങ്കീർണ്ണത, പ്രകടനം, തകരാർ സഹിക്കാനുള്ള കഴിവ് എന്നിവയുടെ വ്യത്യസ്ത സന്തുലിതാവസ്ഥ വാഗ്ദാനം ചെയ്യുന്നു.
Paxos: ഡിസ്ട്രിബ്യൂട്ടഡ് കൺസെൻസസിന്റെ ഗോഡ്ഫാദർ
ലെസ്ലി ലാംപോർട്ട് 1990-ൽ ആദ്യമായി പ്രസിദ്ധീകരിച്ച (പിന്നീട് വളരെക്കാലം കഴിഞ്ഞാണ് ഇത് വ്യാപകമായി മനസ്സിലാക്കപ്പെട്ടതെങ്കിലും), Paxos ഏറ്റവും സ്വാധീനമുള്ളതും വ്യാപകമായി പഠിക്കപ്പെട്ടതുമായ കൺസെൻസസ് അൽഗോരിതമാണ്. ക്രാഷ് സാധ്യതയുള്ള പ്രോസസ്സുകളുള്ള ഒരു അസമന്വിത നെറ്റ്വർക്കിൽ, ഭൂരിപക്ഷം പ്രോസസ്സുകളും പ്രവർത്തനക്ഷമമാണെങ്കിൽ, കൺസെൻസസ് നേടാനുള്ള കഴിവ് ഇതിന് പേരുകേട്ടതാണ്. എന്നിരുന്നാലും, ഇതിന്റെ ഔദ്യോഗിക വിവരണം മനസ്സിലാക്കാൻ വളരെയധികം ബുദ്ധിമുട്ടാണ്, ഇത് “Paxos ലളിതമാണ്, നിങ്ങൾ അത് മനസ്സിലാക്കിക്കഴിഞ്ഞാൽ” എന്ന ചൊല്ലിലേക്ക് നയിച്ചു.
Paxos എങ്ങനെ പ്രവർത്തിക്കുന്നു (ലളിതമാക്കിയത്)
Paxos മൂന്ന് തരം പങ്കാളികളെ നിർവചിക്കുന്നു:
- പ്രൊപ്പോസർമാർ: അംഗീകരിക്കേണ്ട ഒരു മൂല്യം നിർദ്ദേശിക്കുന്നു.
- അക്സെപ്റ്റർമാർ: നിർദ്ദേശിക്കപ്പെട്ട മൂല്യങ്ങളിൽ വോട്ട് ചെയ്യുന്നു. അവർ കണ്ടിട്ടുള്ള ഏറ്റവും ഉയർന്ന പ്രൊപ്പോസൽ നമ്പറും അവർ അംഗീകരിച്ച മൂല്യവും സംഭരിക്കുന്നു.
- ലേണർമാർ: ഏത് മൂല്യമാണ് തിരഞ്ഞെടുക്കപ്പെട്ടതെന്ന് കണ്ടെത്തുന്നു.
അൽഗോരിതം രണ്ട് പ്രധാന ഘട്ടങ്ങളിലൂടെയാണ് മുന്നോട്ട് പോകുന്നത്:
-
ഘട്ടം 1 (തയ്യാറെടുപ്പ്):
- 1a (തയ്യാറെടുപ്പ്): ഒരു പ്രൊപ്പോസർ, പുതിയതും ആഗോളതലത്തിൽ അതുല്യവുമായ ഒരു പ്രൊപ്പോസൽ നമ്പർ
nഉപയോഗിച്ച്, അക്സെപ്റ്റർമാരുടെ ഭൂരിപക്ഷത്തിന് ഒരു 'Prepare' സന്ദേശം അയക്കുന്നു. - 1b (വാഗ്ദാനം): ഒരു Prepare സന്ദേശം
(n)ലഭിക്കുമ്പോൾ, ഒരു അക്സെപ്റ്റർ,n-നേക്കാൾ കുറഞ്ഞ നമ്പറുകളുള്ള ഏതൊരു ഭാവി നിർദ്ദേശങ്ങളെയും അവഗണിക്കാൻ ഒരു 'Promise' ഉപയോഗിച്ച് പ്രതികരിക്കുന്നു. മുൻപ് ഒരു നിർദ്ദേശത്തിന് ഒരു മൂല്യം അംഗീകരിച്ചിട്ടുണ്ടെങ്കിൽ, അത് ഏറ്റവും ഉയർന്ന നമ്പർ ഉള്ള അംഗീകരിച്ച മൂല്യം(v_accepted)ഉം അതിന്റെ പ്രൊപ്പോസൽ നമ്പർ(n_accepted)ഉം അതിന്റെ പ്രതികരണത്തിൽ ഉൾപ്പെടുത്തുന്നു.
- 1a (തയ്യാറെടുപ്പ്): ഒരു പ്രൊപ്പോസർ, പുതിയതും ആഗോളതലത്തിൽ അതുല്യവുമായ ഒരു പ്രൊപ്പോസൽ നമ്പർ
-
ഘട്ടം 2 (അംഗീകരിക്കുക):
- 2a (അംഗീകരിക്കുക): പ്രൊപ്പോസറിന് അക്സെപ്റ്റർമാരുടെ ഭൂരിപക്ഷത്തിൽ നിന്ന് Promise ലഭിച്ചാൽ, അത് അതിന്റെ നിർദ്ദേശത്തിനായി ഒരു മൂല്യം
vതിരഞ്ഞെടുക്കുന്നു. ഏതെങ്കിലും അക്സെപ്റ്റർ മുൻപ് അംഗീകരിച്ച മൂല്യംv_acceptedറിപ്പോർട്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ, ഏറ്റവും ഉയർന്നn_acceptedമായി ബന്ധപ്പെട്ട മൂല്യം പ്രൊപ്പോസർ തിരഞ്ഞെടുക്കണം. അല്ലെങ്കിൽ, അതിന് സ്വന്തം മൂല്യം നിർദ്ദേശിക്കാം. തുടർന്ന്, അത് പ്രൊപ്പോസൽ നമ്പർnഉം തിരഞ്ഞെടുത്ത മൂല്യംvഉം ഉൾപ്പെടുന്ന ഒരു 'Accept' സന്ദേശം അതേ ഭൂരിപക്ഷം അക്സെപ്റ്റർമാർക്ക് അയക്കുന്നു. - 2b (അംഗീകരിക്കപ്പെട്ടു): ഒരു Accept സന്ദേശം
(n, v)ലഭിക്കുമ്പോൾ, ഒരു അക്സെപ്റ്റർ,n-നേക്കാൾ കുറഞ്ഞ നമ്പറുകളുള്ള നിർദ്ദേശങ്ങൾ അവഗണിക്കാമെന്ന് വാഗ്ദാനം ചെയ്തിട്ടില്ലെങ്കിൽ, മൂല്യംvഅംഗീകരിക്കുന്നു. തുടർന്ന് അത് അംഗീകരിക്കപ്പെട്ട മൂല്യം Learners-നെ അറിയിക്കുന്നു.
- 2a (അംഗീകരിക്കുക): പ്രൊപ്പോസറിന് അക്സെപ്റ്റർമാരുടെ ഭൂരിപക്ഷത്തിൽ നിന്ന് Promise ലഭിച്ചാൽ, അത് അതിന്റെ നിർദ്ദേശത്തിനായി ഒരു മൂല്യം
Paxos-ന്റെ ഗുണങ്ങളും ദോഷങ്ങളും
- ഗുണങ്ങൾ: ഉയർന്ന തകരാർ സഹിക്കാനുള്ള കഴിവ് (
2f+1നോഡുകൾക്കിടയിൽfക്രാഷ് തകരാറുകൾ സഹിക്കാൻ കഴിയും). നെറ്റ്വർക്ക് പാർട്ടീഷനുകൾക്കിടയിലും സുരക്ഷ ഉറപ്പാക്കുന്നു (ഒരിക്കലും തെറ്റായി തീരുമാനിക്കില്ല). ഒരു നിശ്ചിത ലീഡറില്ലാതെയും പുരോഗതി കൈവരിക്കാൻ കഴിയും (എങ്കിലും ലീഡർ തിരഞ്ഞെടുപ്പ് ഇത് ലളിതമാക്കുന്നു). - ദോഷങ്ങൾ: മനസ്സിലാക്കാനും ശരിയായി നടപ്പിലാക്കാനും അത്യധികം സങ്കീർണ്ണമാണ്. പ്രത്യേക ഒപ്റ്റിമൈസേഷനുകളില്ലാതെ (ഉദാഹരണത്തിന്, മൾട്ടി-പാക്സോസിലെ ഒരു പ്രത്യേക ലീഡറെ ഉപയോഗിക്കുന്നത് പോലുള്ളവ), ലൈവ്നസ് പ്രശ്നങ്ങൾ (ഉദാഹരണത്തിന്, ആവർത്തിച്ചുള്ള ലീഡർ തിരഞ്ഞെടുപ്പുകൾ, ഇത് സ്റ്റാർവേഷനിലേക്ക് നയിക്കുന്നു) നേരിടാൻ സാധ്യതയുണ്ട്.
പ്രായോഗിക നടപ്പിലാക്കലുകളും വകഭേദങ്ങളും
സങ്കീർണ്ണത കാരണം, ശുദ്ധമായ Paxos നേരിട്ട് നടപ്പിലാക്കുന്നത് വളരെ വിരളമാണ്. പകരം, സിസ്റ്റങ്ങൾ പലപ്പോഴും Multi-Paxos പോലുള്ള വകഭേദങ്ങൾ ഉപയോഗിക്കുന്നു, ഇത് ഒരു സ്ഥിരതയുള്ള ലീഡറെ തുടർച്ചയായി നിരവധി മൂല്യങ്ങൾ നിർദ്ദേശിക്കാൻ അനുവദിക്കുന്നതിലൂടെ നിരവധി കൺസെൻസസ് റൗണ്ടുകളിലായി ലീഡർ തിരഞ്ഞെടുപ്പിന്റെ ഓവർഹെഡ് കുറയ്ക്കുന്നു. Paxos (അല്ലെങ്കിൽ അതിന്റെ ഡെറിവേറ്റീവുകൾ) ഉപയോഗിച്ച് നിർമ്മിച്ച അല്ലെങ്കിൽ സ്വാധീനിക്കപ്പെട്ട സിസ്റ്റങ്ങളുടെ ഉദാഹരണങ്ങളിൽ Google-ന്റെ Chubby ലോക്ക് സേവനം, Apache ZooKeeper (ZAB, ഒരു Paxos പോലുള്ള അൽഗോരിതം ഉപയോഗിച്ച്), വിവിധ ഡിസ്ട്രിബ്യൂട്ടഡ് ഡാറ്റാബേസ് സിസ്റ്റങ്ങൾ എന്നിവ ഉൾപ്പെടുന്നു.
Raft: മനസ്സിലാക്കാൻ എളുപ്പമുള്ള കൺസെൻസസ്
ഡീഗോ ഓംഗാരോയും ജോൺ ഓസ്റ്റർഹൗട്ടും സ്റ്റാൻഫോർഡ് യൂണിവേഴ്സിറ്റിയിൽ 'മനസ്സിലാക്കാൻ എളുപ്പമുള്ളത്' എന്ന വ്യക്തമായ ലക്ഷ്യത്തോടെ വികസിപ്പിച്ചെടുത്തതാണ് Raft. കൺസെൻസസിനായുള്ള സൈദ്ധാന്തിക മിനിമത്തിൽ Paxos ശ്രദ്ധ കേന്ദ്രീകരിക്കുമ്പോൾ, Raft കൂടുതൽ ഘടനാപരവും അവബോധജന്യവുമായ സമീപനത്തിന് മുൻഗണന നൽകുന്നു, ഇത് നടപ്പിലാക്കാനും യുക്തിസഹമാക്കാനും വളരെ എളുപ്പമാക്കുന്നു.
Raft എങ്ങനെ പ്രവർത്തിക്കുന്നു
Raft അതിന്റെ നോഡുകൾക്കും ലളിതമായ അവസ്ഥാ മാറ്റങ്ങൾക്കും വ്യക്തമായ റോളുകൾ നിർവചിച്ചുകൊണ്ട് പ്രവർത്തിക്കുന്നു:
- ലീഡർ: എല്ലാ ക്ലയന്റ് അഭ്യർത്ഥനകളും കൈകാര്യം ചെയ്യാനും, ലോഗ് എൻട്രികൾ നിർദ്ദേശിക്കാനും, അവ ഫോളോവേഴ്സിലേക്ക് പകർക്കാനും ഉത്തരവാദിത്തമുള്ള പ്രധാന നോഡ്. ഒരു സമയം ഒരു ലീഡർ മാത്രമേ ഉണ്ടാകൂ.
- ഫോളോവർ: ലീഡറിൽ നിന്നുള്ള അഭ്യർത്ഥനകളോട് പ്രതികരിക്കുകയും കാൻഡിഡേറ്റുകൾക്ക് വോട്ട് ചെയ്യുകയും ചെയ്യുന്ന നിഷ്ക്രിയ നോഡുകൾ.
- കാൻഡിഡേറ്റ്: ലീഡർ പരാജയപ്പെട്ടെന്ന് വിശ്വസിക്കുമ്പോൾ ഒരു ഫോളോവർ മാറുന്ന അവസ്ഥ, ഒരു പുതിയ ലീഡർ തിരഞ്ഞെടുപ്പ് ആരംഭിക്കുന്നു.
Raft രണ്ട് പ്രധാന സംവിധാനങ്ങളിലൂടെ കൺസെൻസസ് നേടുന്നു:
- ലീഡർ തിരഞ്ഞെടുപ്പ്: ഒരു ഫോളോവർ ലീഡറിൽ നിന്ന് ഒരു നിശ്ചിത ടൈംഔട്ട് കാലയളവിൽ ഒന്നും കേൾക്കുന്നില്ലെങ്കിൽ, അത് ഒരു കാൻഡിഡേറ്റ് ആയി മാറുന്നു. അത് അതിന്റെ നിലവിലെ ടേം (ഒരു ലോജിക്കൽ ക്ലോക്ക്) വർദ്ധിപ്പിക്കുകയും സ്വയം വോട്ട് ചെയ്യുകയും ചെയ്യുന്നു. തുടർന്ന് അത് മറ്റ് നോഡുകളിലേക്ക് 'RequestVote' RPC-കൾ അയക്കുന്നു. ഭൂരിപക്ഷത്തിൽ നിന്ന് വോട്ടുകൾ ലഭിക്കുകയാണെങ്കിൽ, അത് പുതിയ ലീഡറായി മാറുന്നു. മറ്റൊരു നോഡ് ലീഡറാകുകയോ ഒരു സ്പ്ലിറ്റ് വോട്ട് സംഭവിക്കുകയോ ചെയ്താൽ, ഒരു പുതിയ തിരഞ്ഞെടുപ്പ് ടേം ആരംഭിക്കുന്നു.
- ലോഗ് റെപ്ലിക്കേഷൻ: ഒരു ലീഡറെ തിരഞ്ഞെടുത്തുകഴിഞ്ഞാൽ, അത് ക്ലയന്റ് കമാൻഡുകൾ സ്വീകരിക്കുകയും അവ അതിന്റെ പ്രാദേശിക ലോഗിൽ ചേർക്കുകയും ചെയ്യുന്നു. തുടർന്ന് ഈ എൻട്രികൾ പകർത്താൻ എല്ലാ ഫോളോവേഴ്സിലേക്കും 'AppendEntries' RPC-കൾ അയക്കുന്നു. ലീഡർ ഭൂരിപക്ഷം ഫോളോവേഴ്സിലേക്ക് ഒരു ലോഗ് എൻട്രി പകർത്തിക്കഴിഞ്ഞാൽ അത് കമ്മിറ്റ് ചെയ്യപ്പെടുന്നു. കമ്മിറ്റ് ചെയ്ത എൻട്രികൾ മാത്രമേ സ്റ്റേറ്റ് മെഷീനിലേക്ക് പ്രയോഗിക്കൂ.
Raft-ന്റെ ഗുണങ്ങളും ദോഷങ്ങളും
- ഗുണങ്ങൾ: Paxos-നെക്കാൾ മനസ്സിലാക്കാനും നടപ്പിലാക്കാനും വളരെ എളുപ്പമാണ്. ശക്തമായ ലീഡർ മോഡൽ ക്ലയന്റ് ഇടപെടലും ലോഗ് മാനേജ്മെന്റും ലളിതമാക്കുന്നു. ക്രാഷ് തകരാറുകൾക്കിടയിലും സുരക്ഷയും ലൈവ്നെസ്സും ഉറപ്പാക്കുന്നു.
- ദോഷങ്ങൾ: ശക്തമായ ലീഡർ, എഴുത്ത് കൂടുതലുള്ള വർക്ക്ലോഡുകൾക്ക് ഒരു തടസ്സമാകാം (എങ്കിലും ഇത് പല ഉപയോഗ സാഹചര്യങ്ങൾക്കും സ്വീകാര്യമാണ്). പുരോഗതിക്ക് ഒരു സ്ഥിരതയുള്ള ലീഡർ ആവശ്യമാണ്, ഇത് ഇടയ്ക്കിടെയുള്ള നെറ്റ്വർക്ക് പാർട്ടീഷനുകളോ ലീഡർ തകരാറുകളോ ബാധിക്കാം.
Raft-ന്റെ പ്രായോഗിക നടപ്പിലാക്കലുകൾ
മനസ്സിലാക്കാൻ എളുപ്പമുള്ള Raft-ന്റെ രൂപകൽപ്പന അതിന് വ്യാപകമായ സ്വീകാര്യത നേടിക്കൊടുത്തു. പ്രമുഖ ഉദാഹരണങ്ങളിൽ ഇവ ഉൾപ്പെടുന്നു:
- etcd: Kubernetes ക്ലസ്റ്റർ ഏകോപനത്തിനും സ്റ്റേറ്റ് മാനേജ്മെന്റിനും ഉപയോഗിക്കുന്ന ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് കീ-വാല്യൂ സ്റ്റോർ.
- Consul: സേവന കണ്ടെത്തലിനും കോൺഫിഗറേഷനുമുള്ള ഉയർന്ന ലഭ്യതയും സ്ഥിരതയുമുള്ള ഡാറ്റാ സ്റ്റോറിനായി Raft ഉപയോഗിക്കുന്ന ഒരു സേവന മെഷ് സൊല്യൂഷൻ.
- cockroachDB: അതിന്റെ അടിസ്ഥാന സംഭരണത്തിനും റെപ്ലിക്കേഷനും Raft-അധിഷ്ഠിത സമീപനം ഉപയോഗിക്കുന്ന ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് SQL ഡാറ്റാബേസ്.
- HashiCorp Nomad: അതിന്റെ ഏജന്റുകളെ ഏകോപിപ്പിക്കാൻ Raft ഉപയോഗിക്കുന്ന ഒരു വർക്ക്ലോഡ് ഓർക്കസ്ട്രേറ്റർ.
ZAB (ZooKeeper Atomic Broadcast)
Apache ZooKeeper-ന്റെ ഹൃദയഭാഗത്തുള്ള കൺസെൻസസ് അൽഗോരിതമാണ് ZAB, ഇത് വ്യാപകമായി ഉപയോഗിക്കുന്ന ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് കോർഡിനേഷൻ സേവനമാണ്. പലപ്പോഴും Paxos-മായി താരതമ്യം ചെയ്യപ്പെടാറുണ്ടെങ്കിലും, ZAB പ്രത്യേകിച്ച് ZooKeeper-ന്റെ സ്റ്റേറ്റ് മാറ്റങ്ങൾക്കായി ഒരു ക്രമീകൃതവും വിശ്വസനീയവുമായ പ്രക്ഷേപണം നൽകുന്നതിനും ലീഡർ തിരഞ്ഞെടുപ്പ് കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള ആവശ്യകതകൾക്കായി രൂപകൽപ്പന ചെയ്തതാണ്.
ZAB എങ്ങനെ പ്രവർത്തിക്കുന്നു
എല്ലാ ZooKeeper റെപ്ലിക്കകളുടെയും അവസ്ഥ സമന്വയിപ്പിച്ച് നിലനിർത്താനാണ് ZAB ലക്ഷ്യമിടുന്നത്. ഇത് താഴെ പറയുന്ന ഘട്ടങ്ങളിലൂടെയാണ് സാധ്യമാക്കുന്നത്:
- ലീഡർ തിരഞ്ഞെടുപ്പ്: ഒരു ലീഡർ എപ്പോഴും സജീവമാണെന്ന് ഉറപ്പാക്കാൻ ZooKeeper ഒരു ആറ്റോമിക് ബ്രോഡ്കാസ്റ്റ് പ്രോട്ടോക്കോളിന്റെ ഒരു വകഭേദം (ലീഡർ തിരഞ്ഞെടുപ്പ് ഉൾപ്പെടെ) ഉപയോഗിക്കുന്നു. നിലവിലെ ലീഡർ പരാജയപ്പെടുമ്പോൾ, ഒരു തിരഞ്ഞെടുപ്പ് പ്രക്രിയ ആരംഭിക്കുന്നു, അതിൽ നോഡുകൾ ഒരു പുതിയ ലീഡറെ തിരഞ്ഞെടുക്കാൻ വോട്ട് ചെയ്യുന്നു, സാധാരണയായി ഏറ്റവും പുതിയ ലോഗ് ഉള്ള നോഡ് ആയിരിക്കും ഇത്.
- കണ്ടെത്തൽ: ഒരു ലീഡറെ തിരഞ്ഞെടുത്തുകഴിഞ്ഞാൽ, അത് അതിന്റെ ഫോളോവേഴ്സിൽ നിന്ന് ഏറ്റവും പുതിയ അവസ്ഥ കണ്ടെത്താനായി ഡിസ്കവറി ഘട്ടം ആരംഭിക്കുന്നു. ഫോളോവേഴ്സ് അവരുടെ ഏറ്റവും ഉയർന്ന ലോഗ് ഐഡികൾ ലീഡറിന് അയയ്ക്കുന്നു.
- സമന്വയം: തുടർന്ന് ലീഡർ അതിന്റെ അവസ്ഥ ഫോളോവേഴ്സുമായി സമന്വയിപ്പിക്കുന്നു, ഏതെങ്കിലും നഷ്ടപ്പെട്ട ട്രാൻസാക്ഷനുകൾ അവരെ അപ്ഡേറ്റ് ചെയ്യാൻ അയയ്ക്കുന്നു.
- പ്രക്ഷേപണം: സമന്വയത്തിന് ശേഷം, സിസ്റ്റം ബ്രോഡ്കാസ്റ്റ് ഘട്ടത്തിലേക്ക് പ്രവേശിക്കുന്നു. ലീഡർ പുതിയ ട്രാൻസാക്ഷനുകൾ (ക്ലയന്റ് റൈറ്റുകൾ) നിർദ്ദേശിക്കുന്നു, ഈ നിർദ്ദേശങ്ങൾ ഫോളോവേഴ്സിലേക്ക് പ്രക്ഷേപണം ചെയ്യുന്നു. ഭൂരിപക്ഷം ഫോളോവേഴ്സും നിർദ്ദേശത്തിന് അംഗീകാരം നൽകിക്കഴിഞ്ഞാൽ, ലീഡർ അത് കമ്മിറ്റ് ചെയ്യുകയും കമ്മിറ്റ് സന്ദേശം പ്രക്ഷേപണം ചെയ്യുകയും ചെയ്യുന്നു. തുടർന്ന് ഫോളോവേഴ്സ് കമ്മിറ്റ് ചെയ്ത ട്രാൻസാക്ഷൻ അവരുടെ പ്രാദേശിക അവസ്ഥയിലേക്ക് പ്രയോഗിക്കുന്നു.
ZAB-ന്റെ പ്രധാന സവിശേഷതകൾ
- മൊത്തം ഓർഡർ ബ്രോഡ്കാസ്റ്റിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു, എല്ലാ അപ്ഡേറ്റുകളും എല്ലാ റെപ്ലിക്കകളിലും ഒരേ ക്രമത്തിൽ പ്രോസസ്സ് ചെയ്യുന്നുവെന്ന് ഉറപ്പാക്കുന്നു.
- ഉയർന്ന ത്രൂപുട്ട് നിലനിർത്താൻ ലീഡർ സ്ഥിരതയ്ക്ക് ശക്തമായ ഊന്നൽ നൽകുന്നു.
- ലീഡർ തിരഞ്ഞെടുപ്പും സ്റ്റേറ്റ് സമന്വയവും പ്രധാന ഘടകങ്ങളായി സംയോജിപ്പിക്കുന്നു.
ZAB-ന്റെ പ്രായോഗിക ഉപയോഗം
Apache ZooKeeper, Apache Kafka, Hadoop, HBase, Solr എന്നിവയുൾപ്പെടെ നിരവധി ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾക്ക് അടിസ്ഥാനപരമായ സേവനം നൽകുന്നു, ഇത് ഡിസ്ട്രിബ്യൂട്ടഡ് കോൺഫിഗറേഷൻ, ലീഡർ തിരഞ്ഞെടുപ്പ്, നാമകരണം തുടങ്ങിയ സേവനങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു. ഇതിന്റെ വിശ്വാസ്യത ശക്തമായ ZAB പ്രോട്ടോക്കോളിൽ നിന്നാണ് നേരിട്ട് ഉത്ഭവിക്കുന്നത്.
ബൈസന്റൈൻ ഫോൾട്ട് ടോളറൻസ് (BFT) അൽഗോരിതങ്ങൾ
Paxos, Raft, ZAB എന്നിവ പ്രധാനമായും ക്രാഷ് തകരാറുകൾ കൈകാര്യം ചെയ്യുമ്പോൾ, ചില ചുറ്റുപാടുകളിൽ ബൈസന്റൈൻ തകരാറുകൾക്കെതിരെ പ്രതിരോധശേഷി ആവശ്യമാണ്, അവിടെ നോഡുകൾക്ക് ക്ഷുദ്രകരമായോ തോന്നിയതുപോലെ പെരുമാറാനോ കഴിയും. പൊതു ബ്ലോക്ക്ചെയിനുകൾ അല്ലെങ്കിൽ ഉയർന്ന സെൻസിറ്റീവായ സർക്കാർ/സൈനിക സിസ്റ്റങ്ങൾ പോലുള്ള വിശ്വാസരഹിതമായ ചുറ്റുപാടുകളിൽ ഇത് പ്രത്യേകിച്ചും പ്രസക്തമാണ്.
പ്രായോഗിക ബൈസന്റൈൻ ഫോൾട്ട് ടോളറൻസ് (PBFT)
കാസ്ട്രോയും ലിസ്കോവും 1999-ൽ നിർദ്ദേശിച്ച PBFT, ഏറ്റവും അറിയപ്പെടുന്നതും പ്രായോഗികവുമായ BFT അൽഗോരിതങ്ങളിൽ ഒന്നാണ്. മൂന്നിലൊന്ന് നോഡുകൾ ബൈസന്റൈൻ (ക്ഷുദ്രകരമോ തകരാറുള്ളതോ) ആണെങ്കിൽ പോലും ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റത്തിന് സമവായം നേടാൻ ഇത് അനുവദിക്കുന്നു.
PBFT എങ്ങനെ പ്രവർത്തിക്കുന്നു (ലളിതമാക്കിയത്)
PBFT നിരവധി വ്യൂകളിലൂടെയാണ് പ്രവർത്തിക്കുന്നത്, ഓരോന്നിനും ഒരു നിശ്ചിത പ്രൈമറി (ലീഡർ) ഉണ്ട്. പ്രൈമറി പരാജയപ്പെടുകയോ തകരാറിലാണെന്ന് സംശയിക്കുകയോ ചെയ്യുമ്പോൾ, ഒരു പുതിയ പ്രൈമറിയെ തിരഞ്ഞെടുക്കാൻ ഒരു വ്യൂ മാറ്റ പ്രോട്ടോക്കോൾ ആരംഭിക്കുന്നു.
ഒരു ക്ലയന്റ് അഭ്യർത്ഥനയുടെ സാധാരണ പ്രവർത്തനം പല ഘട്ടങ്ങളിലൂടെയാണ് കടന്നുപോയിരിക്കുന്നത്:
- ക്ലയന്റ് അഭ്യർത്ഥന: ഒരു ക്ലയന്റ് പ്രാഥമിക നോഡിലേക്ക് ഒരു അഭ്യർത്ഥന അയയ്ക്കുന്നു.
- പ്രീ-പ്രിപ്പയർ: പ്രൈമറി അഭ്യർത്ഥനയ്ക്ക് ഒരു സീക്വൻസ് നമ്പർ നൽകുകയും എല്ലാ ബാക്കപ്പ് (ഫോളോവർ) നോഡുകളിലേക്കും ഒരു 'Pre-Prepare' സന്ദേശം മൾട്ടികാസ്റ്റ് ചെയ്യുകയും ചെയ്യുന്നു. ഇത് അഭ്യർത്ഥനയ്ക്ക് ഒരു പ്രാരംഭ ക്രമം സ്ഥാപിക്കുന്നു.
- പ്രിപ്പയർ: ഒരു Pre-Prepare സന്ദേശം ലഭിക്കുമ്പോൾ, ബാക്കപ്പുകൾ അതിന്റെ ആധികാരികത പരിശോധിക്കുകയും തുടർന്ന് പ്രാഥമിക നോഡ് ഉൾപ്പെടെ മറ്റെല്ലാ റെപ്ലിക്കകളിലേക്കും ഒരു 'Prepare' സന്ദേശം മൾട്ടികാസ്റ്റ് ചെയ്യുകയും ചെയ്യുന്നു. അഭ്യർത്ഥനകളുടെ ക്രമത്തിൽ തകരാറില്ലാത്ത എല്ലാ റെപ്ലിക്കകളും യോജിക്കുന്നുവെന്ന് ഈ ഘട്ടം ഉറപ്പാക്കുന്നു.
-
കമ്മിറ്റ്: ഒരു പ്രത്യേക അഭ്യർത്ഥനയ്ക്ക്
2f+1Prepare സന്ദേശങ്ങൾ (സ്വന്തം സന്ദേശം ഉൾപ്പെടെ) ഒരു റെപ്ലിക്കയ്ക്ക് ലഭിച്ചുകഴിഞ്ഞാൽ (ഇവിടെfഎന്നത് തകരാറുള്ള നോഡുകളുടെ പരമാവധി എണ്ണമാണ്), അത് മറ്റെല്ലാ റെപ്ലിക്കകളിലേക്കും ഒരു 'Commit' സന്ദേശം മൾട്ടികാസ്റ്റ് ചെയ്യുന്നു. അഭ്യർത്ഥന കമ്മിറ്റ് ചെയ്യപ്പെടുമെന്ന് ഈ ഘട്ടം ഉറപ്പാക്കുന്നു. -
മറുപടി:
2f+1Commit സന്ദേശങ്ങൾ ലഭിച്ചതിന് ശേഷം, ഒരു റെപ്ലിക്ക ക്ലയന്റ് അഭ്യർത്ഥന നടപ്പിലാക്കുകയും ഒരു 'Reply' ക്ലയന്റിലേക്ക് തിരികെ അയക്കുകയും ചെയ്യുന്നു. പ്രവർത്തനം വിജയകരമാണെന്ന് കണക്കാക്കുന്നതിന് മുമ്പ് ക്ലയന്റ്f+1സമാനമായ മറുപടികൾക്കായി കാത്തിരിക്കുന്നു.
PBFT-ന്റെ ഗുണങ്ങളും ദോഷങ്ങളും
- ഗുണങ്ങൾ: ബൈസന്റൈൻ തകരാറുകൾ സഹിക്കുന്നു, ക്ഷുദ്രകരമായ പങ്കാളികളുണ്ടായിട്ടും ശക്തമായ സുരക്ഷാ ഉറപ്പുകൾ നൽകുന്നു. നിർണ്ണായകമായ കൺസെൻസസ് (പ്രോബബിലിസ്റ്റിക് ഫൈനാലിറ്റി ഇല്ല).
- ദോഷങ്ങൾ: ഗണ്യമായ ആശയവിനിമയ ഓവർഹെഡ് (ഓരോ കൺസെൻസസ് റൗണ്ടിനും
O(n^2)സന്ദേശങ്ങൾ ആവശ്യമാണ്, ഇവിടെnഎന്നത് റെപ്ലിക്കകളുടെ എണ്ണമാണ്), ഇത് സ്കേലബിലിറ്റി പരിമിതപ്പെടുത്തുന്നു. ഉയർന്ന ലേറ്റൻസി. സങ്കീർണ്ണമായ നടപ്പിലാക്കൽ.
PBFT-ന്റെ പ്രായോഗിക നടപ്പിലാക്കലുകൾ
അതിന്റെ ഓവർഹെഡ് കാരണം മുഖ്യധാരാ ഇൻഫ്രാസ്ട്രക്ചറിൽ ഇത് അത്ര സാധാരണമല്ലെങ്കിലും, വിശ്വാസ്യത ഉറപ്പാക്കാൻ കഴിയാത്ത ചുറ്റുപാടുകളിൽ PBFT-യും അതിന്റെ ഡെറിവേറ്റീവുകളും നിർണായകമാണ്:
- Hyperledger Fabric: ഒരു അനുമതി ബ്ലോക്ക്ചെയിൻ പ്ലാറ്റ്ഫോം, ഇടപാടുകൾ ക്രമീകരിക്കുന്നതിനും ഫൈനാലിറ്റിക്കും ഒരുതരം PBFT (അല്ലെങ്കിൽ ഒരു മോഡുലാർ കൺസെൻസസ് സേവനം) ഉപയോഗിക്കുന്നു.
- വിവിധ ബ്ലോക്ക്ചെയിൻ പ്രോജക്റ്റുകൾ: പല എന്റർപ്രൈസ് ബ്ലോക്ക്ചെയിനും അനുമതിയുള്ള ഡിസ്ട്രിബ്യൂട്ടഡ് ലെഡ്ജർ ടെക്നോളജികളും (DLT-കൾ) അറിയപ്പെടുന്നതും എന്നാൽ വിശ്വാസയോഗ്യമല്ലാത്തതുമായ പങ്കാളികൾക്കിടയിൽ സമവായം നേടുന്നതിന് BFT അൽഗോരിതങ്ങളോ അവയുടെ വകഭേദങ്ങളോ ഉപയോഗിക്കുന്നു.
കൺസെൻസസ് നടപ്പിലാക്കൽ: പ്രായോഗിക പരിഗണനകൾ
ഒരു കൺസെൻസസ് അൽഗോരിതം തിരഞ്ഞെടുക്കുന്നതും നടപ്പിലാക്കുന്നതും ഒരു വലിയ ജോലിയാണ്. വിജയകരമായ വിന്യാസത്തിനായി നിരവധി പ്രായോഗിക ഘടകങ്ങൾ ശ്രദ്ധാപൂർവ്വം പരിഗണിക്കേണ്ടതുണ്ട്.
ശരിയായ അൽഗോരിതം തിരഞ്ഞെടുക്കുന്നു
ഒരു കൺസെൻസസ് അൽഗോരിതം തിരഞ്ഞെടുക്കുന്നത് നിങ്ങളുടെ സിസ്റ്റത്തിന്റെ പ്രത്യേക ആവശ്യകതകളെ ആശ്രയിച്ചിരിക്കുന്നു:
- തെറ്റ് സഹിക്കാനുള്ള ആവശ്യകതകൾ: നിങ്ങൾക്ക് ക്രാഷ് തകരാറുകൾ മാത്രം സഹിക്കണോ, അതോ ബൈസന്റൈൻ തകരാറുകളും കണക്കിലെടുക്കണോ? മിക്ക എന്റർപ്രൈസ് ആപ്ലിക്കേഷനുകൾക്കും, Raft അല്ലെങ്കിൽ Paxos പോലുള്ള ക്രാഷ്-ഫോൾട്ട് ടോളറന്റ് അൽഗോരിതങ്ങൾ മതിയാകും, കൂടാതെ അവ കൂടുതൽ മികച്ച പ്രകടനം നൽകുന്നു. വളരെ പ്രതികൂലമായ അല്ലെങ്കിൽ വിശ്വാസരഹിതമായ ചുറ്റുപാടുകളിൽ (ഉദാഹരണത്തിന്, പൊതു ബ്ലോക്ക്ചെയിനുകൾ), BFT അൽഗോരിതങ്ങൾ ആവശ്യമാണ്.
- പ്രകടനം vs. സ്ഥിരതയുടെ വിട്ടുവീഴ്ചകൾ: ഉയർന്ന സ്ഥിരത പലപ്പോഴും ഉയർന്ന ലേറ്റൻസിയും കുറഞ്ഞ ത്രൂപുട്ടും ഉണ്ടാക്കുന്നു. നിങ്ങളുടെ ആപ്ലിക്കേഷൻ ഈവെൻച്വൽ കൺസിസ്റ്റൻസിക്ക് എത്രത്തോളം പ്രാധാന്യം നൽകുന്നു എന്നോ സ്ട്രോംഗ് കൺസിസ്റ്റൻസിക്കാണോ എന്ന് മനസ്സിലാക്കുക. പല ആപ്ലിക്കേഷനുകൾക്കും Raft ഒരു നല്ല സന്തുലിതാവസ്ഥ നൽകുന്നു.
- നടപ്പിലാക്കാനുള്ള എളുപ്പവും പരിപാലനവും: Raft-ന്റെ ലാളിത്യം പുതിയ നടപ്പിലാക്കലുകൾക്ക് അതിനെ ഒരു ജനപ്രിയ തിരഞ്ഞെടുപ്പാക്കുന്നു. Paxos ശക്തമാണെങ്കിലും, അത് ശരിയായി നടപ്പിലാക്കാൻ കുപ്രസിദ്ധമായി ബുദ്ധിമുട്ടാണ്. നിങ്ങളുടെ എഞ്ചിനീയറിംഗ് ടീമിന്റെ വൈദഗ്ധ്യവും ദീർഘകാല പരിപാലന ശേഷിയും പരിഗണിക്കുക.
-
സ്കേലബിലിറ്റി ആവശ്യങ്ങൾ: നിങ്ങളുടെ ക്ലസ്റ്ററിൽ എത്ര നോഡുകൾ ഉണ്ടാകും? അവ എത്രത്തോളം ഭൗമശാസ്ത്രപരമായി ചിതറിക്കിടക്കുന്നു?
O(n^2)ആശയവിനിമയ സങ്കീർണ്ണതയുള്ള അൽഗോരിതങ്ങൾ (PBFT പോലുള്ളവ) നൂറുകണക്കിനോ ആയിരക്കണക്കിനോ നോഡുകളിലേക്ക് വികസിപ്പിക്കില്ല, അതേസമയം ലീഡർ അധിഷ്ഠിത അൽഗോരിതങ്ങൾക്ക് വലിയ ക്ലസ്റ്ററുകൾ കൂടുതൽ ഫലപ്രദമായി കൈകാര്യം ചെയ്യാൻ കഴിയും.
നെറ്റ്വർക്ക് വിശ്വാസ്യതയും ടൈംഔട്ടുകളും
കൺസെൻസസ് അൽഗോരിതങ്ങൾ നെറ്റ്വർക്ക് അവസ്ഥകളോട് വളരെ സെൻസിറ്റീവാണ്. നടപ്പിലാക്കലുകൾക്ക് ഇവയെ ശക്തമായി കൈകാര്യം ചെയ്യാൻ കഴിയണം:
- നെറ്റ്വർക്ക് ലേറ്റൻസി: കാലതാമസങ്ങൾ കൺസെൻസസ് റൗണ്ടുകളെ മന്ദഗതിയിലാക്കും, പ്രത്യേകിച്ചും ഒന്നിലധികം ആശയവിനിമയ റൗണ്ടുകൾ ആവശ്യമുള്ള അൽഗോരിതങ്ങൾക്ക്.
- പാക്കറ്റ് നഷ്ടം: സന്ദേശങ്ങൾ നഷ്ടപ്പെടാം. വിശ്വസനീയമായ സന്ദേശ കൈമാറ്റം ഉറപ്പാക്കാൻ അൽഗോരിതങ്ങൾ റീട്രൈകളും അക്നോളജ്മെന്റുകളും ഉപയോഗിക്കണം.
- നെറ്റ്വർക്ക് പാർട്ടീഷനുകൾ: പാർട്ടീഷനുകൾ കണ്ടെത്താനും അതിൽ നിന്ന് കരകയറാനും സിസ്റ്റത്തിന് കഴിയണം, വിഭജന സമയത്ത് സ്ഥിരതയ്ക്കായി ലഭ്യതയെ ത്യജിക്കേണ്ടി വന്നേക്കാം.
- അഡാപ്റ്റീവ് ടൈംഔട്ടുകൾ: നിശ്ചിത ടൈംഔട്ടുകൾ പ്രശ്നകരമാകാം. ഡൈനാമിക്, അഡാപ്റ്റീവ് ടൈംഔട്ടുകൾ (ഉദാഹരണത്തിന്, ലീഡർ തിരഞ്ഞെടുപ്പിന്) വിവിധ നെറ്റ്വർക്ക് ലോഡുകളിലും അവസ്ഥകളിലും സിസ്റ്റങ്ങൾക്ക് മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കാൻ സഹായിക്കുന്നു.
സ്റ്റേറ്റ് മെഷീൻ റെപ്ലിക്കേഷൻ (SMR)
കൺസെൻസസ് അൽഗോരിതങ്ങൾ പലപ്പോഴും സ്റ്റേറ്റ് മെഷീൻ റെപ്ലിക്കേഷൻ (SMR) നടപ്പിലാക്കാൻ ഉപയോഗിക്കുന്നു. SMR-ൽ, ഒരു സേവനത്തിന്റെ എല്ലാ റെപ്ലിക്കകളും ഒരേ പ്രാരംഭ അവസ്ഥയിൽ ആരംഭിക്കുകയും ഒരേ ക്രമത്തിൽ ക്ലയന്റ് കമാൻഡുകളുടെ ഒരേ ശ്രേണി പ്രോസസ്സ് ചെയ്യുകയും ചെയ്യുന്നു. കമാൻഡുകൾ നിർണ്ണായകമാണെങ്കിൽ, എല്ലാ റെപ്ലിക്കകളും ഒരേ ക്രമത്തിലുള്ള അവസ്ഥകളിലൂടെ കടന്നുപോകും, ഇത് സ്ഥിരത ഉറപ്പാക്കുന്നു. സ്റ്റേറ്റ് മെഷീനിലേക്ക് പ്രയോഗിക്കേണ്ട കമാൻഡുകളുടെ മൊത്തം ക്രമത്തിൽ യോജിക്കുക എന്നതാണ് കൺസെൻസസ് അൽഗോരിതത്തിന്റെ പങ്ക്. റെപ്ലിക്കേറ്റഡ് ഡാറ്റാബേസുകൾ, ഡിസ്ട്രിബ്യൂട്ടഡ് ലോക്കുകൾ, കോൺഫിഗറേഷൻ സേവനങ്ങൾ എന്നിവ പോലുള്ള തെറ്റ് സഹിക്കുന്ന സേവനങ്ങൾ നിർമ്മിക്കുന്നതിനുള്ള അടിസ്ഥാന സമീപനമാണിത്.
നിരീക്ഷണവും ദൃശ്യപരതയും
കൺസെൻസസ് അൽഗോരിതങ്ങളുള്ള ഒരു ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റം പ്രവർത്തിപ്പിക്കാൻ വിപുലമായ നിരീക്ഷണം ആവശ്യമാണ്. ട്രാക്ക് ചെയ്യേണ്ട പ്രധാന മെട്രിക്സുകൾ ഇവയാണ്:
- ലീഡർ നില: നിലവിലെ ലീഡർ ഏത് നോഡാണ്? എത്ര നാളായി അത് ലീഡറാണ്?
- ലോഗ് റെപ്ലിക്കേഷൻ പുരോഗതി: ഫോളോവേഴ്സ് ലീഡറിന്റെ ലോഗിന് പിന്നിലാണോ? റെപ്ലിക്കേഷൻ ലാഗ് എത്രയാണ്?
- കൺസെൻസസ് റൗണ്ട് ലേറ്റൻസി: ഒരു പുതിയ എൻട്രി കമ്മിറ്റ് ചെയ്യാൻ എത്ര സമയമെടുക്കുന്നു?
- നെറ്റ്വർക്ക് ലേറ്റൻസി, പാക്കറ്റ് നഷ്ടം: എല്ലാ നോഡുകൾക്കിടയിലും, പ്രത്യേകിച്ചും ലീഡറും ഫോളോവേഴ്സും തമ്മിൽ.
- നോഡ് ആരോഗ്യം: എല്ലാ പങ്കാളികളുടെയും CPU, മെമ്മറി, ഡിസ്ക് I/O.
ഈ മെട്രിക്സുകളെ അടിസ്ഥാനമാക്കിയുള്ള ഫലപ്രദമായ അലേർട്ടിംഗ്, കൺസെൻസസ് തകരാറുകൾ കാരണം സേവന തടസ്സങ്ങൾ ഉണ്ടാകുന്നത് തടയാനും പ്രശ്നങ്ങൾ വേഗത്തിൽ കണ്ടെത്താനും പരിഹരിക്കാനും നിർണായകമാണ്.
സുരക്ഷാ പ്രത്യാഘാതങ്ങൾ
കൺസെൻസസ് അൽഗോരിതങ്ങൾ ധാരണ ഉറപ്പാക്കുന്നുണ്ടെങ്കിലും, അവ സ്വാഭാവികമായും സുരക്ഷ നൽകുന്നില്ല. നടപ്പിലാക്കലുകൾ ഇവ പരിഗണിക്കണം:
- ആധികാരികത ഉറപ്പാക്കൽ: അംഗീകൃത നോഡുകൾക്ക് മാത്രമേ കൺസെൻസസ് പ്രക്രിയയിൽ പങ്കെടുക്കാൻ കഴിയൂ എന്ന് ഉറപ്പാക്കുക.
- അധികാരപ്പെടുത്തൽ: ഓരോ നോഡിനും ചെയ്യാൻ അനുവാദമുള്ള പ്രവർത്തനങ്ങൾ (ഉദാഹരണത്തിന്, മൂല്യങ്ങൾ നിർദ്ദേശിക്കുക, വോട്ട് ചെയ്യുക) നിർവചിക്കുക.
- എൻക്രിപ്ഷൻ: ചോർത്തലുകളോ കൃത്രിമങ്ങളോ തടയാൻ നോഡുകൾ തമ്മിലുള്ള ആശയവിനിമയം സംരക്ഷിക്കുക.
- സമഗ്രത: ഡിജിറ്റൽ ഒപ്പുകളോ സന്ദേശ ആധികാരികതാ കോഡുകളോ ഉപയോഗിച്ച് സന്ദേശങ്ങൾ കൈമാറ്റത്തിൽ മാറ്റം വരുത്തിയിട്ടില്ലെന്ന് ഉറപ്പാക്കുക, പ്രത്യേകിച്ചും BFT സിസ്റ്റങ്ങൾക്ക് ഇത് നിർണായകമാണ്.
വിപുലമായ വിഷയങ്ങളും ഭാവി പ്രവണതകളും
ഡിസ്ട്രിബ്യൂട്ടഡ് കൺസെൻസസ് എന്ന മേഖല നിരന്തരം വികസിച്ചുകൊണ്ടിരിക്കുന്നു, തുടർച്ചയായ ഗവേഷണങ്ങളും പുതിയ വെല്ലുവിളികളും ഉയർന്നുവരുന്നു.
ഡൈനാമിക് മെമ്പർഷിപ്പ്
പല കൺസെൻസസ് അൽഗോരിതങ്ങളും പങ്കെടുക്കുന്ന നോഡുകളുടെ ഒരു സ്റ്റാറ്റിക് സെറ്റ് അനുമാനിക്കുന്നു. എന്നിരുന്നാലും, യഥാർത്ഥ ലോകത്തിലെ സിസ്റ്റങ്ങൾക്ക് പലപ്പോഴും ഡൈനാമിക് മെമ്പർഷിപ്പ് മാറ്റങ്ങൾ (നോഡുകൾ ചേർക്കുകയോ നീക്കം ചെയ്യുകയോ ചെയ്യുക) സ്കെയിൽ ചെയ്യാനോ, പരാജയപ്പെട്ട ഹാർഡ്വെയർ മാറ്റാനോ ആവശ്യമാണ്. സ്ഥിരത നിലനിർത്തിക്കൊണ്ട് ക്ലസ്റ്റർ മെമ്പർഷിപ്പ് സുരക്ഷിതമായി മാറ്റുന്നത് ഒരു സങ്കീർണ്ണ പ്രശ്നമാണ്, Raft പോലുള്ള അൽഗോരിതങ്ങൾക്ക് ഇതിനായി വ്യക്തമായി നിർവചിക്കപ്പെട്ട, മൾട്ടി-ഫേസ് പ്രോട്ടോക്കോളുകൾ ഉണ്ട്.
ഭൂമിശാസ്ത്രപരമായി വിതരണം ചെയ്ത വിന്യാസങ്ങൾ (WAN ലേറ്റൻസി)
ഭൂമിശാസ്ത്രപരമായി ചിതറിക്കിടക്കുന്ന ഡാറ്റാ സെന്ററുകളിലായി കൺസെൻസസ് അൽഗോരിതങ്ങൾ വിന്യസിക്കുന്നത് ഗണ്യമായ വൈഡ് ഏരിയ നെറ്റ്വർക്ക് (WAN) ലേറ്റൻസിക്ക് കാരണമാകുന്നു, ഇത് പ്രകടനത്തെ സാരമായി ബാധിക്കും. WAN-ന് അനുയോജ്യമായ Paxos അല്ലെങ്കിൽ Raft വകഭേദങ്ങൾ (ഉദാഹരണത്തിന്, വേഗത്തിലുള്ള റീഡുകൾക്കായി പ്രാദേശിക മേഖലകളിൽ ചെറിയ ക്വോറങ്ങൾ ഉപയോഗിക്കുന്നത്, അല്ലെങ്കിൽ ലീഡർമാരെ ശ്രദ്ധാപൂർവ്വം സ്ഥാപിക്കുന്നത്) പോലുള്ള തന്ത്രങ്ങൾ പര്യവേക്ഷണം ചെയ്യപ്പെടുന്നുണ്ട്. മൾട്ടി-റീജിയൺ വിന്യാസങ്ങളിൽ പലപ്പോഴും ആഗോള സ്ഥിരതയും പ്രാദേശിക പ്രകടനവും തമ്മിൽ വിട്ടുവീഴ്ചകൾ ഉൾപ്പെടുന്നു.
ബ്ലോക്ക്ചെയിൻ കൺസെൻസസ് മെക്കാനിസങ്ങൾ
ബ്ലോക്ക്ചെയിൻ സാങ്കേതികവിദ്യയുടെ ഉയർച്ച കൺസെൻസസിൽ പുതുക്കിയ താൽപ്പര്യവും നവീകരണവും ഉണ്ടാക്കി. പൊതു ബ്ലോക്ക്ചെയിനുകൾക്ക് ഒരു പ്രത്യേക വെല്ലുവിളിയുണ്ട്: ഒരു കേന്ദ്രീകൃത അധികാരമില്ലാതെ, വലുതും, ചലനാത്മകവും, ക്ഷുദ്രകരമാകാൻ സാധ്യതയുള്ളതുമായ അജ്ഞാത പങ്കാളികൾക്കിടയിൽ സമവായം നേടുക. ഇത് പുതിയ കൺസെൻസസ് മെക്കാനിസങ്ങളുടെ വികസനത്തിന് കാരണമായി:
- പ്രൂഫ്-ഓഫ്-വർക്ക് (PoW): (ഉദാഹരണത്തിന്, ബിറ്റ്കോയിൻ, 'ദി മെർജ്'-ന് മുമ്പുള്ള Ethereum) ലെഡ്ജർ സുരക്ഷിതമാക്കാൻ കമ്പ്യൂട്ടേഷണൽ പസിൽ-പരിഹാരങ്ങളെ ആശ്രയിക്കുന്നു, ഇത് ക്ഷുദ്രകരമായ നടന്മാർക്ക് ചരിത്രം മാറ്റിയെഴുതുന്നത് ചെലവേറിയതാക്കുന്നു.
- പ്രൂഫ്-ഓഫ്-സ്റ്റേക്ക് (PoS): (ഉദാഹരണത്തിന്, 'ദി മെർജ്'-ന് ശേഷമുള്ള Ethereum, Solana, Cardano) മൂല്യം 'stake' ആയി നൽകുന്ന ക്രിപ്റ്റോകറൻസിയുടെ അളവിനെ അടിസ്ഥാനമാക്കി വാലിഡേറ്റർമാരെ തിരഞ്ഞെടുക്കുന്നു, ഇത് സത്യസന്ധമായ പെരുമാറ്റത്തിന് പ്രോത്സാഹനം നൽകുന്നു.
- ഡെലിഗേറ്റഡ് പ്രൂഫ്-ഓഫ്-സ്റ്റേക്ക് (DPoS): (ഉദാഹരണത്തിന്, EOS, TRON) സ്റ്റേക്ക്ഹോൾഡർമാർ ഇടപാടുകൾ സാധൂകരിക്കുന്നതിന് പരിമിതമായ എണ്ണം പ്രതിനിധികളെ തിരഞ്ഞെടുക്കുന്നു.
- ഡയറക്റ്റഡ് അസൈക്ലിക് ഗ്രാഫുകൾ (DAGs): (ഉദാഹരണത്തിന്, IOTA, Fantom) ഒരു വ്യത്യസ്ത ഡാറ്റാ ഘടന ഇടപാടുകൾ സമാന്തരമായി പ്രോസസ്സ് ചെയ്യാൻ അനുവദിക്കുന്നു, ഇത് പരമ്പരാഗത ബ്ലോക്ക് അധിഷ്ഠിത കൺസെൻസസ് ഇല്ലാതെ ഉയർന്ന ത്രൂപുട്ട് വാഗ്ദാനം ചെയ്യാൻ സാധ്യതയുണ്ട്.
ഈ അൽഗോരിതങ്ങൾ പലപ്പോഴും പരമ്പരാഗത ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റം കൺസെൻസസിനെ അപേക്ഷിച്ച് വ്യത്യസ്ത സവിശേഷതകൾക്ക് (ഉദാഹരണത്തിന്, സെൻസർഷിപ്പ് പ്രതിരോധം, വികേന്ദ്രീകരണം, ഫൈനാലിറ്റി) മുൻഗണന നൽകുന്നു, ഇത് സാധാരണയായി വിശ്വസനീയവും നിശ്ചിതവുമായ നോഡുകൾക്കിടയിൽ ശക്തമായ സ്ഥിരതയ്ക്കും ഉയർന്ന ലഭ്യതയ്ക്കും ഊന്നൽ നൽകുന്നു.
ഒപ്റ്റിമൈസേഷനുകളും വകഭേദങ്ങളും
നിലവിലുള്ള അൽഗോരിതങ്ങൾ പരിഷ്കരിക്കുന്നതിനും പുതിയവ നിർദ്ദേശിക്കുന്നതിനും ഗവേഷണം തുടരുന്നു. ഉദാഹരണങ്ങളിൽ ഇവ ഉൾപ്പെടുന്നു:
- ഫാസ്റ്റ് പാക്സോസ്: സാധാരണ സാഹചര്യങ്ങളിൽ ഒരു റൗണ്ട് ആശയവിനിമയത്തിലൂടെ മൂല്യങ്ങൾ തിരഞ്ഞെടുക്കാൻ അനുവദിച്ചുകൊണ്ട് ലേറ്റൻസി കുറയ്ക്കാൻ രൂപകൽപ്പന ചെയ്ത ഒരു വകഭേദം.
- ഈഗാലിറ്റേറിയൻ പാക്സോസ്: ചില സാഹചര്യങ്ങളിൽ ഏകോപനമില്ലാതെ ഒന്നിലധികം ലീഡർമാർക്കോ പ്രൊപ്പോസർമാർക്കോ ഒരേ സമയം പ്രവർത്തിക്കാൻ അനുവദിച്ച് ത്രൂപുട്ട് മെച്ചപ്പെടുത്താൻ ലക്ഷ്യമിടുന്നു.
- ജനറലൈസ്ഡ് പാക്സോസ്: മൂല്യങ്ങളുടെ ശ്രേണികളിലും ആർബിട്രറി സ്റ്റേറ്റ് മെഷീൻ പ്രവർത്തനങ്ങളിലും ധാരണയിലെത്താൻ Paxos വികസിപ്പിക്കുന്നു.
ഉപസംഹാരം
വിശ്വസനീയമായ ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങളുടെ അടിസ്ഥാന ശിലകളാണ് കൺസെൻസസ് അൽഗോരിതങ്ങൾ. ആശയപരമായി വെല്ലുവിളി നിറഞ്ഞതാണെങ്കിലും, ആധുനിക സിസ്റ്റം ആർക്കിടെക്ചറിന്റെ സങ്കീർണ്ണതകളിലേക്ക് കടന്നുചെല്ലുന്ന ഏതൊരു പ്രൊഫഷണലിനും ഇവയെക്കുറിച്ചുള്ള വൈദഗ്ദ്ധ്യം അത്യാവശ്യമാണ്. Paxos-ന്റെ കർശനമായ സുരക്ഷാ ഉറപ്പുകൾ മുതൽ Raft-ന്റെ ഉപയോക്തൃ സൗഹൃദ രൂപകൽപ്പനയും PBFT-യുടെ ശക്തമായ തകരാർ സഹിക്കാനുള്ള കഴിവ് വരെ, ഓരോ അൽഗോരിതവും അനിശ്ചിതത്വങ്ങൾക്കിടയിലും സ്ഥിരത ഉറപ്പാക്കാൻ തനതായ വിട്ടുവീഴ്ചകൾ വാഗ്ദാനം ചെയ്യുന്നു.
ഈ അൽഗോരിതങ്ങൾ നടപ്പിലാക്കുന്നത് ഒരു അക്കാദമിക് വ്യായാമം മാത്രമല്ല; നെറ്റ്വർക്കുകളുടെയും ഹാർഡ്വെയർ തകരാറുകളുടെയും പ്രവചനാതീതമായ സ്വഭാവങ്ങളെ അതിജീവിക്കാൻ കഴിയുന്ന സിസ്റ്റങ്ങൾ രൂപകൽപ്പന ചെയ്യുന്നതിലൂടെ ലോകമെമ്പാടുമുള്ള ഉപയോക്താക്കൾക്ക് ഡാറ്റയുടെ സമഗ്രതയും തുടർച്ചയായ പ്രവർത്തനവും ഉറപ്പാക്കുക എന്നതാണ്. ക്ലൗഡ് കമ്പ്യൂട്ടിംഗ്, ബ്ലോക്ക്ചെയിൻ, ആഗോളതലത്തിലുള്ള സേവനങ്ങൾക്കുള്ള വർദ്ധിച്ചുവരുന്ന ആവശ്യം എന്നിവയാൽ പ്രചോദിതമായി ഡിസ്ട്രിബ്യൂട്ടഡ് സിസ്റ്റങ്ങൾ വികസിച്ചുകൊണ്ടിരിക്കുമ്പോൾ, കൺസെൻസസ് അൽഗോരിതങ്ങളുടെ തത്വങ്ങളും പ്രായോഗിക പ്രയോഗങ്ങളും ശക്തവും പ്രതിരോധശേഷിയുള്ളതുമായ സിസ്റ്റം രൂപകൽപ്പനയുടെ മുൻനിരയിൽ തുടരും. ഈ അടിസ്ഥാനപരമായ നിർമ്മാണ ബ്ലോക്കുകൾ മനസ്സിലാക്കുന്നത് നമ്മുടെ പരസ്പരബന്ധിതമായ ലോകത്തിന് സേവനം നൽകുന്ന അടുത്ത തലമുറയിലെ ഉയർന്ന ലഭ്യതയും സ്ഥിരതയുമുള്ള ഡിജിറ്റൽ ഇൻഫ്രാസ്ട്രക്ചറുകൾ സൃഷ്ടിക്കാൻ എഞ്ചിനീയർമാരെ പ്രാപ്തരാക്കുന്നു.